<?php

namespace app\common\validate;

use \think\Validate;
use \app\lib\exception\BaseException;
class BaseValidate extends Validate
{
    public function goCheck($scene='')
    {
        // 请求传递过来的所有参数
        $params = request()->param();
        // 开始验证

        $check = empty($scene) ? $this->check($params) : $this->scene($scene)->check($params);
        if (!$check) {
            throw (new BaseException(['code' => 422 , 'msg' => $this->getError(),'errorCode' => 10000]));
        }
        return true;
    }
    // 验证码验证
    public function isPefectCode($value,$rules='',$data=[],$field='')
    {
        // 验证码不存在
        $beforeCode = cache($data['phone']);
        if(!$beforeCode) return '请重新获取验证码';
        // 验证验证码
        if($value != $beforeCode) return '验证码错误';
        return true;
    }
    // 验证话题是否存在
    public function isTopicExist($value,$rules='',$data=[],$field='')
    {
        if($value==0) return true;
        if(\app\common\model\Topic::field('id')->find($value))
        {
            return true;
        }
        return '该话题已不存在';
    }
     // 文章分类是否存在
     public function isPostClassExist($value,$rules='',$data=[],$field='')
     {
         if($value==0) return true;
         if(\app\common\model\PostClass::field('id')->find($value))
         {
             return true;
         }
         return '该文章分类已不存在';
     }
     // 是否是有效用户
     public function isRefectId($value,$rule='',$data=[],$field)
     {
        $user = \app\common\model\User::field(['id'])->find($value);
        if(empty($user))
        {   
             return '用户不存在';
        }else{
            return true;
        }
     }
     // 文章是否存在
     public function isPostExist($value,$rule='',$data=[],$field)
     {
        if($value==0) return true;
        if(\app\common\model\Post::field('id')->find($value))
        {
            return true;
        }
        return '该文章已不存在';
     }
     // 评论是否存在
     public function isCommentExist($value,$rule= [],$data=[],$field)
     {
        if($value==0) return true;
        if(\app\common\model\Comment::field('id')->find($value))
        {
            return true;
        }
        return '评论不存在';
     }
     // 验证用户是否存在
     public function isUserExist($value,$rule = [] ,$data=[],$field)
     {
        if(\app\common\model\User::field('id')->find($value)){
            return true;
        }
        return '该用户不存在';
     }

     // 反馈信息不能为空
     protected function NotEmpty($value,$rule = [] ,$data=[],$field)
     {
         if(empty($value)) return $field.'不能为空';
         return true;
     }
    
}
